﻿namespace test_the_tower
{/// <summary>
/// 汉诺塔，将A塔中的盘一次移动一个,小的在上大的在下的法则移动到C塔上
/// </summary>
    internal class Program
    {
        static void Main(string[] args)
        {
            //输入盘数和引用函数Hanoi
            Console.WriteLine("将A塔中的盘一次移动一个,小的在上大的在下的法则移动到C塔上   请输入盘子个数：");
            int n = Convert.ToInt32(Console.ReadLine());
            Hanoi(n, 'A', 'B', 'C');
        }
        static void Hanoi(int n, char A, char B, char C)
        {
            //当只有一层时，直接从A移动到C
            if (n == 1)
            {
                Console.WriteLine($"将第{n}个盘子从{A}移动到{C}");
            }
            else
            {
                //前n-1个盘从a移动到b
                Hanoi(n - 1, A, C, B);
                Console.WriteLine($"将第{n}个盘子从{A}移动到{C}");
                //再从b移动掉c
                Hanoi(n - 1, B, A, C);
            }
        }
    }
}